From 450ffa8c6abf452cb3c2630544485eb0ad0f09be Mon Sep 17 00:00:00 2001 From: "djm@kirby.fc.hp.com" Date: Fri, 11 Nov 2005 13:23:04 -0600 Subject: [PATCH] Fix delivery of nat consumption faults (still chatty) Signed-off by: Dan Magenheimer --- xen/arch/ia64/xen/process.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/xen/arch/ia64/xen/process.c b/xen/arch/ia64/xen/process.c index 2f8b84c9a7..cfe91e4ef4 100644 --- a/xen/arch/ia64/xen/process.c +++ b/xen/arch/ia64/xen/process.c @@ -743,10 +743,15 @@ ia64_handle_reflection (unsigned long ifa, struct pt_regs *regs, unsigned long i vector = IA64_DISABLED_FPREG_VECTOR; break; case 26: + if (((isr >> 4L) & 0xfL) == 1) { + //regs->eml_unat = 0; FIXME: DO WE NEED THIS?? + printf("ia64_handle_reflection: handling regNaT fault"); + vector = IA64_NAT_CONSUMPTION_VECTOR; break; + } printf("*** NaT fault... attempting to handle as privop\n"); printf("isr=%p, ifa=%p,iip=%p,ipsr=%p\n",isr,ifa,regs->cr_iip,psr); - regs->eml_unat = 0; - return; + //regs->eml_unat = 0; FIXME: DO WE NEED THIS??? + // certain NaT faults are higher priority than privop faults vector = priv_emulate(v,regs,isr); if (vector == IA64_NO_FAULT) { printf("*** Handled privop masquerading as NaT fault\n"); -- 2.30.2